A. Field of the Invention
Systems and methods consistent with principles of the invention relate generally to packet scheduling, and more particularly, to improving the accuracy of packet scheduling systems.
B. Description of Related Art
Routers receive data on a physical media, such as optical fiber, analyze the data to determine its destination, and output the data on a physical media in accordance with the destination. Routers were initially designed using a general purpose processor executing large software programs. As line rates and traffic volume increased, however, general purpose processors could not scale to meet these new demands. For example, as functionality was added to the software, such as accounting and policing functionality, these routers suffered performance degradation. In some instances, the routers failed to handle traffic at the required line rate when the new functionality was enabled.
To meet the new demands, purpose-built routers were designed. Purpose-built routers are designed and built with components optimized for routing. They not only handle higher line rates and higher network traffic volume, but they also add functionality without compromising line rate performance.
A purpose-built router may include a number of input and output ports from which it transmits and receives information packets. A switching fabric may be implemented in the router to carry the packets between ports.
In order to control their high packet throughput, purpose-built routers use memory buffers to temporarily queue packets waiting to be processed based upon predefined criteria, such as relative weight or priority. A packet scheduler may control the dequeuing of packets from the buffer queues. One well-known scheduling methodology is referred to as Weighted Round Robin (R) scheduling. In WRR scheduling, each queue is assigned a relative weight. Transmission opportunities are allocated for each queue based upon the relative weights of the queues, using a round-robin technique to cycle between the queues.
While weighted round robin scheduling provides fairly accurate allocation of resources, processing that may occur after the WRR scheduler has performed its operation may modify the packets actually transmitted. Such modifications may reduce the accuracy of the WRR scheduler. Accordingly, there is a need for a WRR scheduler that more accurately takes output packet size into consideration.